const path = require("path");
const resolve = (dir) => path.join(__dirname, dir);

module.exports = {
  devServer: {
    proxy: {
      "/api": {
        target: "http://localhost:8080",//后端服务
        ws: true,
        changeOrigin: true, // 允许跨域
        pathRewrite: {
          //替换，通配/api的替换成对应字符
          /* 重写路径，当我们在浏览器中看到请求的地址为：http://localhost:8080/api/core/getData/userInfo 时
            实际上访问的地址是：http://localhost:8088/spring/core/getData/userInfo,因为重写了 /api
           */
          // "^/api": "", //当你的接口中没有/api字眼时，采用这种，直接替换成空即可
          "^/api": "/api", //当你的接口中刚好有/api 时，采用这种方式
        },
        bypass: function(req, res, proxyOptions) {
          //public静态资源存放列表
          let static=[
            "/json/message.json",
          ]
          let originalUrl=req.originalUrl.replace("/api","");
          let isStatic=static.includes(originalUrl);
          if (isStatic) {
            return originalUrl;
          }
        }
      },
    },
    port: 8082,//指定监听请求的端口号
  },

  chainWebpack: (config) => {
    config.resolve.alias.set("@", resolve("src"));
    config.when(process.env.NODE_ENV === "production", (config) => {
      /* 设置打包入口 */
      config.entry("app").clear().add("./src/main-prod.js");

      config.set("externals", {
        vue: "Vue",
        "vue-router": "VueRouter",
        axios: "axios",
        vuex: "Vuex",
      });

      config.plugin("html").tap((args) => {
        //添加参数isProd
        args[0].isProd = true;
        args[0].title = "小雨云听";
        return args;
      });
    });
    config.when(process.env.NODE_ENV === "development", (config) => {
      config.entry("app").clear().add("./src/main.js");
      config.plugin("html").tap((args) => {
        //添加参数isProd
        args[0].isProd = false;
        args[0].title = "小雨云听";
        return args;
      });
    });
  },

  productionSourceMap: false,
};
